package com.feather.common.web;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;

import redis.clients.jedis.BinaryClient.LIST_POSITION;
import redis.clients.jedis.BitOP;
import redis.clients.jedis.BitPosParams;
import redis.clients.jedis.DebugParams;
import redis.clients.jedis.GeoCoordinate;
import redis.clients.jedis.GeoRadiusResponse;
import redis.clients.jedis.GeoUnit;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisCluster.Reset;
import redis.clients.jedis.JedisPubSub;
import redis.clients.jedis.ScanParams;
import redis.clients.jedis.ScanResult;
import redis.clients.jedis.SortingParams;
import redis.clients.jedis.Tuple;
import redis.clients.jedis.ZParams;
import redis.clients.jedis.params.geo.GeoRadiusParam;
import redis.clients.jedis.params.sortedset.ZAddParams;
import redis.clients.jedis.params.sortedset.ZIncrByParams;
import redis.clients.util.Slowlog;

public class JedisDummy extends Jedis
// implements redis.clients.jedis.JedisCommands,
// redis.clients.jedis.MultiKeyCommands,
// redis.clients.jedis.AdvancedJedisCommands,
// redis.clients.jedis.ScriptingCommands, redis.clients.jedis.BasicCommands,
// redis.clients.jedis.ClusterCommands, redis.clients.jedis.SentinelCommands,
// java.lang.AutoCloseable
{
	@SuppressWarnings("rawtypes")
	public static Map			MAP			= new ConcurrentHashMap();

	public static final Jedis	INSTANCE	= new JedisDummy();

	private JedisDummy() {

	}

	public void close() {
	}

	@Override
	public String sentinelFailover(String arg0) {
		return null;
	}

	@Override
	public List<String> sentinelGetMasterAddrByName(String arg0) {
		return new ArrayList<String>();
	}

	@Override
	public List<Map<String, String>> sentinelMasters() {
		return new ArrayList<Map<String, String>>();
	}

	@Override
	public String sentinelMonitor(String arg0, String arg1, int arg2, int arg3) {
		return null;
	}

	@Override
	public String sentinelRemove(String arg0) {
		return null;
	}

	@Override
	public Long sentinelReset(String arg0) {
		return null;
	}

	@Override
	public String sentinelSet(String arg0, Map<String, String> arg1) {
		return null;
	}

	@Override
	public List<Map<String, String>> sentinelSlaves(String arg0) {
		return new ArrayList<Map<String, String>>();
	}

	@Override
	public String clusterAddSlots(int... arg0) {
		return null;
	}

	@Override
	public Long clusterCountKeysInSlot(int arg0) {
		return null;
	}

	@Override
	public String clusterDelSlots(int... arg0) {
		return null;
	}

	@Override
	public String clusterFailover() {
		return null;
	}

	@Override
	public String clusterFlushSlots() {
		return null;
	}

	@Override
	public String clusterForget(String arg0) {
		return null;
	}

	@Override
	public List<String> clusterGetKeysInSlot(int arg0, int arg1) {
		return new ArrayList<String>();
	}

	@Override
	public String clusterInfo() {
		return null;
	}

	@Override
	public Long clusterKeySlot(String arg0) {
		return null;
	}

	@Override
	public String clusterMeet(String arg0, int arg1) {
		return null;
	}

	@Override
	public String clusterNodes() {
		return null;
	}

	@Override
	public String clusterReplicate(String arg0) {
		return null;
	}

	@Override
	public String clusterReset(Reset arg0) {
		return null;
	}

	@Override
	public String clusterSaveConfig() {
		return null;
	}

	@Override
	public String clusterSetSlotImporting(int arg0, String arg1) {
		return null;
	}

	@Override
	public String clusterSetSlotMigrating(int arg0, String arg1) {
		return null;
	}

	@Override
	public String clusterSetSlotNode(int arg0, String arg1) {
		return null;
	}

	@Override
	public String clusterSetSlotStable(int arg0) {
		return null;
	}

	@Override
	public List<String> clusterSlaves(String arg0) {
		return new ArrayList<String>();
	}

	@Override
	public List<Object> clusterSlots() {
		return new ArrayList<Object>();
	}

	@Override
	public String readonly() {
		return null;
	}

	@Override
	public String auth(String arg0) {
		return null;
	}

	@Override
	public String bgrewriteaof() {
		return null;
	}

	@Override
	public String bgsave() {
		return null;
	}

	@Override
	public String configResetStat() {
		return null;
	}

	@Override
	public Long dbSize() {
		return null;
	}

	@Override
	public String debug(DebugParams arg0) {
		return null;
	}

	@Override
	public String flushAll() {
		return null;
	}

	@Override
	public String flushDB() {
		return null;
	}

	@Override
	public Long getDB() {
		return null;
	}

	@Override
	public String info() {
		return null;
	}

	@Override
	public String info(String arg0) {
		return null;
	}

	@Override
	public Long lastsave() {
		return null;
	}

	@Override
	public String ping() {
		return null;
	}

	@Override
	public String quit() {
		return null;
	}

	@Override
	public String save() {
		return null;
	}

	@Override
	public String select(int arg0) {
		return null;
	}

	@Override
	public String shutdown() {
		return null;
	}

	@Override
	public String slaveof(String arg0, int arg1) {
		return null;
	}

	@Override
	public String slaveofNoOne() {
		return null;
	}

	@Override
	public Long waitReplicas(int arg0, long arg1) {
		return null;
	}

	@Override
	public Object eval(String arg0) {
		return null;
	}

	@Override
	public Object eval(String arg0, int arg1, String... arg2) {
		return null;
	}

	@Override
	public Object eval(String arg0, List<String> arg1, List<String> arg2) {
		return null;
	}

	@Override
	public Object evalsha(String arg0) {
		return null;
	}

	@Override
	public Object evalsha(String arg0, List<String> arg1, List<String> arg2) {
		return null;
	}

	@Override
	public Object evalsha(String arg0, int arg1, String... arg2) {
		return null;
	}

	@Override
	public Boolean scriptExists(String arg0) {
		return Boolean.FALSE;
	}

	@Override
	public List<Boolean> scriptExists(String... arg0) {
		return new ArrayList<Boolean>();
	}

	@Override
	public String scriptLoad(String arg0) {
		return null;
	}

	@Override
	public List<String> configGet(String arg0) {
		return new ArrayList<String>();
	}

	@Override
	public String configSet(String arg0, String arg1) {
		return null;
	}

	@Override
	public String objectEncoding(String arg0) {
		return null;
	}

	@Override
	public Long objectIdletime(String arg0) {
		return null;
	}

	@Override
	public Long objectRefcount(String arg0) {
		return null;
	}

	@Override
	public List<Slowlog> slowlogGet() {
		return null;
	}

	@Override
	public List<Slowlog> slowlogGet(long arg0) {
		return new ArrayList<Slowlog>();
	}

	@Override
	public Long slowlogLen() {
		return null;
	}

	@Override
	public String slowlogReset() {
		return null;
	}

	@Override
	public Long bitop(BitOP arg0, String arg1, String... arg2) {
		return null;
	}

	@Override
	public List<String> blpop(String... arg0) {
		return new ArrayList<String>();
	}

	@Override
	public List<String> blpop(int arg0, String... arg1) {
		return new ArrayList<String>();
	}

	@Override
	public List<String> brpop(String... arg0) {
		return null;
	}

	@Override
	public List<String> brpop(int arg0, String... arg1) {
		return new ArrayList<String>();
	}

	@Override
	public String brpoplpush(String arg0, String arg1, int arg2) {
		return null;
	}

	@Override
	public Long del(String... arg0) {
		return null;
	}

	@Override
	public Long exists(String... arg0) {
		return null;
	}

	@Override
	@SuppressWarnings("rawtypes")
	public Set<String> keys(String arg0) {
		Set<String> set = new HashSet<String>();
		if (arg0 != null && arg0.length() > 0) {
			Iterator keys = MAP.keySet().iterator();
			while (keys.hasNext()) {
				String item = (String) keys.next();
				int argLength = arg0.length();
				if ((arg0.charAt(argLength - 1) == '*' && item.startsWith(arg0.substring(0, argLength - 1))) || (arg0.charAt(argLength - 1) == '?' && item.startsWith(arg0.substring(0, argLength - 1)) && argLength == item.length()) || arg0.equals(item))
					set.add(item);
			}
		}
		return set;
	}

	@Override
	public List<String> mget(String... arg0) {
		return new ArrayList<String>();
	}

	@Override
	public String mset(String... arg0) {
		return null;
	}

	@Override
	public Long msetnx(String... arg0) {
		return null;
	}

	@Override
	public long pfcount(String... arg0) {
		return 0;
	}

	@Override
	public String pfmerge(String arg0, String... arg1) {
		return null;
	}

	@Override
	public void psubscribe(JedisPubSub arg0, String... arg1) {
	}

	@Override
	public Long publish(String arg0, String arg1) {
		return null;
	}

	@Override
	public String randomKey() {
		return null;
	}

	@Override
	public String rename(String arg0, String arg1) {
		return null;
	}

	@Override
	public Long renamenx(String arg0, String arg1) {
		return null;
	}

	@Override
	public String rpoplpush(String arg0, String arg1) {
		return null;
	}

	@Override
	public ScanResult<String> scan(int arg0) {
		return null;
	}

	@Override
	public ScanResult<String> scan(String arg0) {
		return null;
	}

	@Override
	public ScanResult<String> scan(String arg0, ScanParams arg1) {
		return null;
	}

	@Override
	public Set<String> sdiff(String... arg0) {
		return new HashSet<String>();
	}

	@Override
	public Long sdiffstore(String arg0, String... arg1) {
		return null;
	}

	@Override
	public Set<String> sinter(String... arg0) {
		return new HashSet<String>();
	}

	@Override
	public Long sinterstore(String arg0, String... arg1) {
		return null;
	}

	@Override
	public Long smove(String arg0, String arg1, String arg2) {
		return null;
	}

	@Override
	public Long sort(String arg0, String arg1) {
		return null;
	}

	@Override
	public Long sort(String arg0, SortingParams arg1, String arg2) {
		return null;
	}

	@Override
	public void subscribe(JedisPubSub arg0, String... arg1) {
	}

	@Override
	public Set<String> sunion(String... arg0) {
		return new HashSet<String>();
	}

	@Override
	public Long sunionstore(String arg0, String... arg1) {
		return null;
	}

	@Override
	public String unwatch() {
		return null;
	}

	@Override
	public String watch(String... arg0) {
		return null;
	}

	@Override
	public Long zinterstore(String arg0, String... arg1) {
		return null;
	}

	@Override
	public Long zinterstore(String arg0, ZParams arg1, String... arg2) {
		return null;
	}

	@Override
	public Long zunionstore(String arg0, String... arg1) {
		return null;
	}

	@Override
	public Long zunionstore(String arg0, ZParams arg1, String... arg2) {
		return null;
	}

	@Override
	public Long append(String arg0, String arg1) {
		return null;
	}

	@Override
	public Long bitcount(String arg0) {
		return null;
	}

	@Override
	public Long bitcount(String arg0, long arg1, long arg2) {
		return null;
	}

	@Override
	public Long bitpos(String arg0, boolean arg1) {
		return null;
	}

	@Override
	public Long bitpos(String arg0, boolean arg1, BitPosParams arg2) {
		return null;
	}

	@Override
	public List<String> blpop(String arg0) {
		return blpop(0, arg0);
	}

	@Override
	public List<String> blpop(int arg0, String arg1) {
		List<String> pop = new ArrayList<String>();
		pop.add(arg1);
		while (true) {
			String value = lpop(arg1);
			if (value == null) {
				continue;
			}
			pop.add(value);
			break;
		}
		return pop;
	}

	@Override
	public List<String> brpop(String arg0) {
		return brpop(0, arg0);
	}

	@Override
	public List<String> brpop(int arg0, String arg1) {
		List<String> pop = new ArrayList<String>();
		pop.add(arg1);
		while (true) {
			String value = rpop(arg1);
			if (value == null) {
				continue;
			}
			pop.add(value);
			break;
		}
		return pop;
	}

	@Override
	public Long decr(String arg0) {
		return null;
	}

	@Override
	public Long decrBy(String arg0, long arg1) {
		return null;
	}

	@Override
	public Long del(String arg0) {
		Object obj = MAP.remove(arg0);
		return obj != null ? 1L : -1L;
	}

	@Override
	public String echo(String arg0) {
		return null;
	}

	@Override
	public Boolean exists(String arg0) {
		return MAP.containsKey(arg0);
	}

	@Override
	public Boolean exists(byte[] arg0) {
		return MAP.containsKey(arg0);
	}

	@Override
	public Long expire(String arg0, int arg1) {
		return null;
	}

	@Override
	public Long expireAt(String arg0, long arg1) {
		return null;
	}

	@Override
	public Long geoadd(String arg0, Map<String, GeoCoordinate> arg1) {
		return null;
	}

	@Override
	public Long geoadd(String arg0, double arg1, double arg2, String arg3) {
		return null;
	}

	@Override
	public Double geodist(String arg0, String arg1, String arg2) {
		return null;
	}

	@Override
	public Double geodist(String arg0, String arg1, String arg2, GeoUnit arg3) {
		return null;
	}

	@Override
	public List<String> geohash(String arg0, String... arg1) {
		return null;
	}

	@Override
	public List<GeoCoordinate> geopos(String arg0, String... arg1) {
		return null;
	}

	@Override
	public List<GeoRadiusResponse> georadius(String arg0, double arg1, double arg2, double arg3, GeoUnit arg4) {
		return null;
	}

	@Override
	public List<GeoRadiusResponse> georadius(String arg0, double arg1, double arg2, double arg3, GeoUnit arg4, GeoRadiusParam arg5) {
		return null;
	}

	@Override
	public List<GeoRadiusResponse> georadiusByMember(String arg0, String arg1, double arg2, GeoUnit arg3) {
		return null;
	}

	@Override
	public List<GeoRadiusResponse> georadiusByMember(String arg0, String arg1, double arg2, GeoUnit arg3, GeoRadiusParam arg4) {
		return null;
	}

	@Override
	public String get(String arg0) {
		Object obj = MAP.get(arg0);
		return obj != null ? obj.toString() : null;
	}

	@Override
	public byte[] get(byte[] arg0) {
		return (byte[]) MAP.get(arg0);
	}

	@Override
	public String getSet(String arg0, String arg1) {
		return null;
	}

	@Override
	public Boolean getbit(String arg0, long arg1) {
		return Boolean.FALSE;
	}

	@Override
	public String getrange(String arg0, long arg1, long arg2) {
		return null;
	}

	@Override
	public Long hdel(String arg0, String... arg1) {
		return null;
	}

	@Override
	@SuppressWarnings("rawtypes")
	public Boolean hexists(String arg0, String arg1) {
		Map obj = (Map) MAP.get(arg0);
		return obj != null ? obj.containsKey(arg1) : false;
	}

	@Override
	@SuppressWarnings("rawtypes")
	public String hget(String arg0, String arg1) {
		Map obj = (Map) MAP.get(arg0);
		return obj != null ? (String) obj.get(arg1) : null;
	}

	@Override
	@SuppressWarnings({ "unchecked", "rawtypes" })
	public Map<String, String> hgetAll(String arg0) {
		return (Map) MAP.get(arg0);
	}

	@Override
	public Long hincrBy(String arg0, String arg1, long arg2) {
		return null;
	}

	@Override
	public Double hincrByFloat(String arg0, String arg1, double arg2) {
		return null;
	}

	@Override
	public Set<String> hkeys(String arg0) {
		return null;
	}

	@Override
	public Long hlen(String arg0) {
		return null;
	}

	@Override
	public List<String> hmget(String arg0, String... arg1) {
		return null;
	}

	@Override
	@SuppressWarnings("unchecked")
	public String hmset(String arg0, Map<String, String> arg1) {
		synchronized (MAP) {
			MAP.put(arg0, arg1);
		}
		return null;
	}

	@Override
	public ScanResult<Entry<String, String>> hscan(String arg0, int arg1) {
		return null;
	}

	@Override
	public ScanResult<Entry<String, String>> hscan(String arg0, String arg1) {
		return null;
	}

	@Override
	public ScanResult<Entry<String, String>> hscan(String arg0, String arg1, ScanParams arg2) {
		return null;
	}

	@Override
	@SuppressWarnings({ "unchecked", "rawtypes" })
	public Long hset(String arg0, String arg1, String arg2) {
		synchronized (MAP) {
			Map obj = (Map) MAP.get(arg0);
			if (obj == null) {
				obj = new HashMap();
				MAP.put(arg0, obj);
			}
			obj.put(arg1, arg2);
		}
		return null;
	}

	@Override
	public Long hsetnx(String arg0, String arg1, String arg2) {
		return null;
	}

	@Override
	public List<String> hvals(String arg0) {
		return null;
	}

	@Override
	public Long incr(String arg0) {
		return null;
	}

	@Override
	public Long incrBy(String arg0, long arg1) {
		return null;
	}

	@Override
	public Double incrByFloat(String arg0, double arg1) {
		return null;
	}

	@Override
	public String lindex(String arg0, long arg1) {
		return null;
	}

	@Override
	public Long linsert(String arg0, LIST_POSITION arg1, String arg2, String arg3) {
		return null;
	}

	@Override
	@SuppressWarnings("rawtypes")
	public Long llen(String arg0) {
		List list = (List) MAP.get(arg0);
		return list != null ? list.size() : 0L;
	}

	@Override
	@SuppressWarnings("unchecked")
	public String lpop(String arg0) {
		List<String> list = (List<String>) MAP.get(arg0);
		if (list != null) {
			synchronized (list) {
				if (list.size() > 0)
					return list.remove(0);
			}
		}
		return null;
	}

	@Override
	@SuppressWarnings("unchecked")
	public Long lpush(String arg0, String... arg1) {
		synchronized (MAP) {
			List<String> list = (List<String>) MAP.get(arg0);
			if (list == null) {
				list = new ArrayList<String>();
				MAP.put(arg0, list);
			}
			for (String item : arg1)
				list.add(0, item);
		}
		return 1L;
	}

	@Override
	public Long lpushx(String arg0, String... arg1) {
		return null;
	}

	@Override
	public List<String> lrange(String arg0, long arg1, long arg2) {
		return null;
	}

	@Override
	public Long lrem(String arg0, long arg1, String arg2) {
		return null;
	}

	@Override
	public String lset(String arg0, long arg1, String arg2) {
		return null;
	}

	@Override
	public String ltrim(String arg0, long arg1, long arg2) {
		return null;
	}

	@Override
	public Long move(String arg0, int arg1) {
		return null;
	}

	@Override
	public Long persist(String arg0) {
		return null;
	}

	@Override
	public Long pexpire(String arg0, long arg1) {
		return null;
	}

	@Override
	public Long pexpireAt(String arg0, long arg1) {
		return null;
	}

	@Override
	public Long pfadd(String arg0, String... arg1) {
		return null;
	}

	@Override
	public long pfcount(String arg0) {
		return 0;
	}

	@Override
	public String psetex(String arg0, long arg1, String arg2) {
		return null;
	}

	@Override
	public Long pttl(String arg0) {
		return null;
	}

	@Override
	@SuppressWarnings("unchecked")
	public String rpop(String arg0) {
		List<String> list = (List<String>) MAP.get(arg0);
		if (list != null) {
			synchronized (list) {
				if (list.size() > 0)
					return list.remove(list.size() - 1);
			}
		}
		return null;
	}

	@Override
	@SuppressWarnings("unchecked")
	public Long rpush(String arg0, String... arg1) {
		synchronized (MAP) {
			List<String> list = (List<String>) MAP.get(arg0);
			if (list == null) {
				list = new ArrayList<String>();
				MAP.put(arg0, list);
			}
			for (String item : arg1)
				list.add(item);
		}
		return null;
	}

	@Override
	public Long rpushx(String arg0, String... arg1) {
		return null;
	}

	@Override
	public Long sadd(String arg0, String... arg1) {
		return null;
	}

	@Override
	public Long scard(String arg0) {
		return null;
	}

	@Override
	@SuppressWarnings("unchecked")
	public String set(String arg0, String arg1) {
		String obj = null;
		synchronized (MAP) {
			obj = (String) MAP.put(arg0, arg1);
		}
		return obj;
	}

	@Override
	@SuppressWarnings("unchecked")
	public String set(byte[] arg0, byte[] arg1) {
		Object obj = null;
		synchronized (MAP) {
			obj = MAP.put(arg0, arg1);
		}
		return obj != null ? obj.toString() : null;
	}

	@Override
	public String set(String arg0, String arg1, String arg2) {
		return null;
	}

	@Override
	public String set(String arg0, String arg1, String arg2, String arg3, long arg4) {
		return null;
	}

	@Override
	public Boolean setbit(String arg0, long arg1, boolean arg2) {
		return Boolean.FALSE;
	}

	@Override
	public Boolean setbit(String arg0, long arg1, String arg2) {
		return Boolean.FALSE;
	}

	@Override
	@SuppressWarnings("unchecked")
	public String setex(String arg0, int arg1, String arg2) {
		synchronized (MAP) {
			if (MAP.containsKey(arg0)) {
				return (String) MAP.put(arg0, arg1);
			}
		}
		return null;
	}

	@Override
	@SuppressWarnings("unchecked")
	public Long setnx(String arg0, String arg1) {
		synchronized (MAP) {
			if (!MAP.containsKey(arg0)) {
				MAP.put(arg0, arg1);
				return 1L;
			}
		}
		return -1L;
	}

	@Override
	public Long setrange(String arg0, long arg1, String arg2) {
		return null;
	}

	@Override
	public Boolean sismember(String arg0, String arg1) {
		return Boolean.FALSE;
	}

	@Override
	public Set<String> smembers(String arg0) {
		return null;
	}

	@Override
	public List<String> sort(String arg0) {
		return null;
	}

	@Override
	public List<String> sort(String arg0, SortingParams arg1) {
		return null;
	}

	@Override
	public String spop(String arg0) {
		return null;
	}

	@Override
	public Set<String> spop(String arg0, long arg1) {
		return null;
	}

	@Override
	public String srandmember(String arg0) {
		return null;
	}

	@Override
	public List<String> srandmember(String arg0, int arg1) {
		return null;
	}

	@Override
	public Long srem(String arg0, String... arg1) {
		return null;
	}

	@Override
	public ScanResult<String> sscan(String arg0, int arg1) {
		return null;
	}

	@Override
	public ScanResult<String> sscan(String arg0, String arg1) {
		return null;
	}

	@Override
	public ScanResult<String> sscan(String arg0, String arg1, ScanParams arg2) {
		return null;
	}

	@Override
	public Long strlen(String arg0) {
		return null;
	}

	@Override
	public String substr(String arg0, int arg1, int arg2) {
		return null;
	}

	@Override
	public Long ttl(String arg0) {
		return null;
	}

	@Override
	public String type(String arg0) {
		return null;
	}

	@Override
	public Long zadd(String arg0, Map<String, Double> arg1) {
		return null;
	}

	@Override
	public Long zadd(String arg0, double arg1, String arg2) {
		return null;
	}

	@Override
	public Long zadd(String arg0, Map<String, Double> arg1, ZAddParams arg2) {
		return null;
	}

	@Override
	public Long zadd(String arg0, double arg1, String arg2, ZAddParams arg3) {
		return null;
	}

	@Override
	public Long zcard(String arg0) {
		return null;
	}

	@Override
	public Long zcount(String arg0, double arg1, double arg2) {
		return null;
	}

	@Override
	public Long zcount(String arg0, String arg1, String arg2) {
		return null;
	}

	@Override
	public Double zincrby(String arg0, double arg1, String arg2) {
		return null;
	}

	@Override
	public Double zincrby(String arg0, double arg1, String arg2, ZIncrByParams arg3) {
		return null;
	}

	@Override
	public Long zlexcount(String arg0, String arg1, String arg2) {
		return null;
	}

	@Override
	public Set<String> zrange(String arg0, long arg1, long arg2) {
		return null;
	}

	@Override
	public Set<String> zrangeByLex(String arg0, String arg1, String arg2) {
		return null;
	}

	@Override
	public Set<String> zrangeByLex(String arg0, String arg1, String arg2, int arg3, int arg4) {
		return null;
	}

	@Override
	public Set<String> zrangeByScore(String arg0, double arg1, double arg2) {
		return null;
	}

	@Override
	public Set<String> zrangeByScore(String arg0, String arg1, String arg2) {
		return null;
	}

	@Override
	public Set<String> zrangeByScore(String arg0, double arg1, double arg2, int arg3, int arg4) {
		return null;
	}

	@Override
	public Set<String> zrangeByScore(String arg0, String arg1, String arg2, int arg3, int arg4) {
		return null;
	}

	@Override
	public Set<Tuple> zrangeByScoreWithScores(String arg0, double arg1, double arg2) {
		return null;
	}

	@Override
	public Set<Tuple> zrangeByScoreWithScores(String arg0, String arg1, String arg2) {
		return null;
	}

	@Override
	public Set<Tuple> zrangeByScoreWithScores(String arg0, double arg1, double arg2, int arg3, int arg4) {
		return null;
	}

	@Override
	public Set<Tuple> zrangeByScoreWithScores(String arg0, String arg1, String arg2, int arg3, int arg4) {
		return null;
	}

	@Override
	public Set<Tuple> zrangeWithScores(String arg0, long arg1, long arg2) {
		return null;
	}

	@Override
	public Long zrank(String arg0, String arg1) {
		return null;
	}

	@Override
	public Long zrem(String arg0, String... arg1) {
		return null;
	}

	@Override
	public Long zremrangeByLex(String arg0, String arg1, String arg2) {
		return null;
	}

	@Override
	public Long zremrangeByRank(String arg0, long arg1, long arg2) {
		return null;
	}

	@Override
	public Long zremrangeByScore(String arg0, double arg1, double arg2) {
		return null;
	}

	@Override
	public Long zremrangeByScore(String arg0, String arg1, String arg2) {
		return null;
	}

	@Override
	public Set<String> zrevrange(String arg0, long arg1, long arg2) {
		return null;
	}

	@Override
	public Set<String> zrevrangeByLex(String arg0, String arg1, String arg2) {
		return null;
	}

	@Override
	public Set<String> zrevrangeByLex(String arg0, String arg1, String arg2, int arg3, int arg4) {
		return null;
	}

	@Override
	public Set<String> zrevrangeByScore(String arg0, double arg1, double arg2) {
		return null;
	}

	@Override
	public Set<String> zrevrangeByScore(String arg0, String arg1, String arg2) {
		return null;
	}

	@Override
	public Set<String> zrevrangeByScore(String arg0, double arg1, double arg2, int arg3, int arg4) {
		return null;
	}

	@Override
	public Set<String> zrevrangeByScore(String arg0, String arg1, String arg2, int arg3, int arg4) {
		return null;
	}

	@Override
	public Set<Tuple> zrevrangeByScoreWithScores(String arg0, double arg1, double arg2) {
		return null;
	}

	@Override
	public Set<Tuple> zrevrangeByScoreWithScores(String arg0, String arg1, String arg2) {
		return null;
	}

	@Override
	public Set<Tuple> zrevrangeByScoreWithScores(String arg0, double arg1, double arg2, int arg3, int arg4) {
		return null;
	}

	@Override
	public Set<Tuple> zrevrangeByScoreWithScores(String arg0, String arg1, String arg2, int arg3, int arg4) {
		return null;
	}

	@Override
	public Set<Tuple> zrevrangeWithScores(String arg0, long arg1, long arg2) {
		return null;
	}

	@Override
	public Long zrevrank(String arg0, String arg1) {
		return null;
	}

	@Override
	public ScanResult<Tuple> zscan(String arg0, int arg1) {
		return null;
	}

	@Override
	public ScanResult<Tuple> zscan(String arg0, String arg1) {
		return null;
	}

	@Override
	public ScanResult<Tuple> zscan(String arg0, String arg1, ScanParams arg2) {
		return null;
	}

	@Override
	public Double zscore(String arg0, String arg1) {
		return null;
	}
}
